home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CRESC / Variations / gen-variants-tfc < prev    next >
Lisp/Scheme  |  1996-12-31  |  987b  |  24 lines

  1. gen-variants-tfc seed number step symbol-pattern  
  2.  
  3. This is one of a series of functions that are able to generate a number of variations from a symbol-pattern. The 'theme' (symbol-pattern) is always stated in the output first followed sequentially by the <number> of variants.
  4.  
  5. (setq mel (gen-variants-tfc 0.345 3 nil '(a b c d)))
  6. --> (a b c d = b b e e c d e g f = d)
  7.  
  8. Each variant is transposed up one symbol position, (a b c d) becoming (b c d e) and so on. The function find-change replaces repeated symbols inside each variant with a pause.
  9.  
  10. Step value allows the variation sequence to be entered as any point. For example:
  11.  
  12. (setq mel1 (gen-variants-tfc 0.234 3 3 '(a b c d)))
  13. --> (a b c d d f = d)
  14.  
  15. Or, more extreme:
  16.  
  17. (gen-variants-tfc 0.3 3 5 '(a b c d))
  18. --> (a b c d i = = = g h f = d = = =)  
  19.  
  20. Should you wish to remove the 'theme' from the output statement use the nthcdr function:
  21.  
  22. (setq mel2 (nthcdr 4 (gen-variants-tfc nil 3 nil '(a b c d))))
  23. --> (d b = = f c d = e = g d)
  24.